package 注解.概述_自定义注解;

@MyTest1(aaa = "牛魔王", ccc = {"java", "heima"})
// @MyTest2(value = "孙悟空")
@MyTest2("孙悟空") //可以省略value
public class Test {
    public static void main(String[] args) {
        // 注解: 就是java代码里的特殊记号, 比如: @Override、@Test, 作用是: 让其他程序根据注解信息来决定怎么执行该程序
        // 注意: 注解可以用在类上,构造器上,方法上,成员变量上,参数上等位置处

        // 自定义注解:
        // public @interface 注解名称 {
        //     public 属性类型 属性名() default 默认值;
        // }

        // 特殊属性名: value
        // 如果注解中只有一个value属性, 使用注解时, value名称可以不写

        // 注解的原理:
        // 1. 注解本质是一个接口, Java中所有注解都是继承了Annotation接口的
        // 2. @注解(...): 其实就是一个实现类对象, 实现了该注解以及Annotation接口
    }

    @MyTest1(aaa = "铁扇公主", bbb = false, ccc = {"前端", "后端"})
    public void test1() {

    }
}
